#ifndef SGALGORITHM_H
#define SGALGORITHM_H
#include"samegame.h"
#include<vector>
#include <string>
#include <QObject>

struct SGSolution
{
    SGSolution():score(0),BlocksLefted(0){}
    std::vector<SGPoint> steps;
    int BlocksLefted;
    int score;
};

class SGalgorithm:public QObject
{
public:
    SGalgorithm():QObject(){}
    virtual SGSolution solve(sameGame samegame)=0;
    SGSolution operator()(sameGame samegame){return solve(samegame);}
    virtual operator std::string()=0;
   // void QObject::
};

#endif // SGALGORITHM_H
